Skip to content

Comments

Lesson 2 code style#2

Open
yaprogrammer18-yanchi wants to merge 15 commits intomainfrom
Lesson_2_CodeStyle
Open

Lesson 2 code style#2
yaprogrammer18-yanchi wants to merge 15 commits intomainfrom
Lesson_2_CodeStyle

Conversation

@yaprogrammer18-yanchi
Copy link
Owner

@yaprogrammer18-yanchi yaprogrammer18-yanchi commented Sep 21, 2025

Added hw:

  1. Быстрое вычисление многочлена
  2. Счастливые билеты
  3. Неполное частное
  4. Переворот массива

Это второй пул реквест, первый я закрыла, так как по ошибке в эту ветку добавила решения задач из третьего урока... В данный момент тут только задачи из Code style урока.

Copy link
Collaborator

@WoWaster WoWaster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Забавно, в стайлгайде прямо не написано, хотя предполагается, что файлы называются в CamelCase.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачтено.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Решение корректное. Хотя по асимптотике (либо уже было на дискретке, либо вот-вот будет на Python) не идеальное. При желании можно найти более эффективное решение. Будет зачтено при инициализации переменных и использовании \n

Comment on lines 6 to 7
int x;
int t;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Неинициализированные переменные! В остальный файлах тоже!

int x;
int t;
scanf("%d", &x);
t = x * x;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

t можно было бы объявить прямо здесь

scanf("%d", &x);
t = x * x;
int result = (t + x) * (t + 1) + 1;
printf("%d", result);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не забывайте \n

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А вот изменения в этом файле я не вижу :( Поэтому комментарии будут прямо здесь.

  1. Куча неиницилизированных переменных!
  2. Вспомините математическое определение неполного частного, r обычно означает остаток и сбивает с толку. Если переименовать, можно будет обойтись без комментариев
    int r = 0; // сколько раз вмещается b в a
  1. Переменные у нас в курсе называются в camelCase, а не в snake_case.
  2. Для логических значений лучше использовать тип bool из stdbool.h. Более того, | -- это побитовое ИЛИ. Чем оно отличается от логического расскажем чуть позже, пока просто не путайте | и ||.
  3. В случае если отдельно разбираются случаи когда числа одного знака и разных знаков, можно проверять знак произведения.
  4. remember_a можно было объявить и присвоить позже.
  5. Можно было написать так:
    if (b == 0) {
        printf("division by zero\n");
        return 1;
    }

и уменьшить вложенность кода.

@yaprogrammer18-yanchi
Copy link
Owner Author

Откатила коммит к предыдущему состоянию, когда еще нет ветки с третьим уроком. Исправила ошибки в файлах.

Copy link
Collaborator

@WoWaster WoWaster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 домашку я Вам зачёл целиком, но вливать пока нельзя, потому что здесь оказались коммиты с третьей домашкой. Вы можете попробовать погуглить, как теперь это разнести в разные ветки. Мой вариант решения проблемы (возможно слишком сложный):

  1. Сделать ветку для 3 домашки от main
  2. Сделать туда cherry-pick коммитов, в которых живёт третья домашка
  3. Запушить эту ветку.
  4. Перейти на ветку для 2 домашки
  5. Сделать интерактивный ребейз и снести коммиты с 3 домашкой
  6. Сделать force push этой ветки
    На консультации можно сделать это вместе с преподавателем, если страшно и/или гугл не знает более лёгкого пути.

P.S. действия в коммитах обычно пишутся в настоящем времени (add, revert)

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачтено.

int rememberA = abs(a);

if (b == 0) {
printf("devision by zero\n");
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Оно, конечно, division, но это уже мелочи

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачтено.

int howManyTimesBInA = 0;
scanf("%d %d", &a, &b);

int underZero = false; // флаг, чтобы понять какие значения введены
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь тоже не заметил. Логические переменные принято называть в стиле isUnderZero (а ещё корректнее isNegative)

@yaprogrammer18-yanchi
Copy link
Owner Author

yaprogrammer18-yanchi commented Sep 28, 2025

Делала все строго по вашей инструкции, надеюсь, получилось и я нигде не напутала с коммитами... Получается, если все окей будет с этой веткой, я смогу запулреквестить ветку с третьим уроком и именно ту, куда переносила коммиты?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants